#include "Contexto.h"

Contexto::Contexto()
{
	size = 0;
	maxSize = 4;
		for (int i = 0; i<maxSize; i++)
			predicciones[i] = new Prediccion();
}

Contexto::Contexto(int maxSiz)
{
	size = 0;
	maxSize = maxSiz;
	for (int i = 0; i<maxSize; i++)
		predicciones[i] = new Prediccion();
}

Contexto::~Contexto()
{
    for (int i = 0; i<maxSize; i++)
        delete predicciones[i];
	//delete[] predicciones;
}


void Contexto::sumarPuntaje(int pred, int punt)
{
	predicciones[pred]->sumarPuntaje(punt);
}


void Contexto::addPrediccion(int pos)
{
	predicciones[size]->setPuntajeInicial();
	predicciones[size]->setPosicion(pos);
	size++;
}


int Contexto::buscarPosMatch(char car, BloqueTexto bloqueTexto)
{
	int posMatch = -1;
	for (int i = 0; i<size; i++)
	{
		if (predicciones[i]->getCaracter(bloqueTexto) == car)
			posMatch = i;
	}
	return posMatch;
}

void Contexto::posicionarCabeza(int posCab)
{
	Prediccion *aux = predicciones[0];
	predicciones[0] = predicciones[posCab];
	predicciones[posCab] = aux;
}

void Contexto::reordenar()
{
	bool salir = false;
	int i = 1;
	while(!salir && i<size)
	{
		if( predicciones[0]->getPuntaje() < predicciones[i]->getPuntaje())
		{
			posicionarCabeza(i);
			salir = true;
		}
		i++;
	}
}

